『本書採用目前流行的EventStorming(事件風暴)作為教學主軸,以刊登廣告系統為範例,帶著讀者完整走過一遍套用DDD的分析、設計與實作過程。書中除了基本的Entity、ValueObject、DomainService、Factory、Aggregate、Repository、DomainEvent、ApplicationService等DDD戰術模式的詳細實作範例與設計取捨的討論,還包含進階的CQRS以及EventSourcing應用。對於有志實踐EventSourcing的讀者,不可錯過本書的第10章與第11章。』
——「搞笑談軟工」板主TeddyChen 專文推薦
領域驅動設計與.NETCore:應用DDD原則,探索軟體核心複雜度
TacklingcomplexityintheheartofsoftwarebyputtingDDDprinciplesintopractice
為了將複雜的業務知識與需求,轉換成容易理解和維護的傑出軟體,來自世界各地的開發人員開始應用DDD原則,使用現代工具(如EventStorming、EventSourcing和CQRS)識別並解決對的問題,為客戶提供他們真正想要的東西。本書將引導你,如何讓利害關係人也能參與你為他們精心建置的軟體。透過了解領域模型的行為驅動與時序本質,你將能夠建置更精實、更敏捷、模組化的系統,進而解決複雜的業務問題!
首先,我們將探討領域的複雜度,並學習如何捕捉領域語言的各種行為。然後,我們將說明EventStorming,並透過.NETCore2.1(或更高版本)建立新專案。我們還會編寫一些將事件從便利貼轉移到C#的程式碼。我們也將展示如何使用aggregate處理命令並產生事件,以及逐步掌握CQRS、EventSourcing、BoundedContext的精髓。在將領域模型轉換為可執行的C#程式碼之後,我們將使用Vue.js範例應用程式,學習一些有用的前端相關模式。此外,我們也將重構程式碼,討論事件版本和遷移的要點。
在這本書中,你將學到:
・使用EventStorming,與利害關係人一起發現並解決領域複雜度
・如何避免領域模型的常見陷阱
・深入探索並學習BoundedContext、ContextMap等概念
・EventSourcing的優點和缺點
・詳細介紹CQRS(命令查詢職責分離)
・學會使用EventStore
・學習實作投影(projection)
・將DDD應用於不同的架構風格,如REST、反應式系統、微服務
本書的最後一章,「第13章,分割系統」,是一個「線上補充章節」,讀者請至博碩文化官網,下載繁體中文翻譯PDF。
目標讀者:
適合熟悉C#和JavaScript的.NET開發人員。
下載範例程式檔案:
本書的程式碼是由GitHub託管,可點選下面圖案前往下載:
下載本書的彩色圖片:
提供您一個包含本書使用的彩色圖表的PDF檔案,可以在此下載:
程式碼 軟體 應用 JAVASCRIPT DDD 探索 下載